import { ref, computed } from 'vue'
import { defineStore } from 'pinia'

export const useCounterStore = defineStore('counter', () => {
  const cartlist = ref([])

  // 加入购物车
  const addItem = (payload) => {
    // 新数据直接存进数组，重复的数据让count进行++
    // payload是加入购物车时的数据，是个对象
    // 两个id相等时就表示数据有重复的，然后让数据中的count进行++
    // index是重复的数据的下标
    const index = cartlist.value.findIndex(v => v.id === payload.id)
    if (index > -1) {
      cartlist.value[index].count++
    } else {
      cartlist.value.push(payload)
    }
  }

  const deleteItem = id => {
    cartlist.value = cartlist.value.filter(item => item.id !== id)
  }

  // 计算总价
  const totalPrice = computed(()=>{
    let res = 0;
    // 遍历数组
    cartlist.value.forEach(item =>{
      if(item.checked){
        res += item.price * item.count
      }
    })
    return res * 100
  })

  return { cartlist, addItem, deleteItem, totalPrice }
})
